/*
Date:20210428 13:22PM
key: 再一次熟悉unordered_set这个结构，内部通过hash组织，因此插入后查找O(1)。
    因此遍历里面每个元素，在开始循环前如果j-1也在set内，直接跳过，因为j-1开始一定比当前j开始的序列长。
    因此只会在每个子序列的开头遍历。
*/
class Solution {
public:
    int longestConsecutive(vector<int>& nums) {

        unordered_set<int>s;
        for(int j:nums)
        {
            s.insert(j);
        }

        int m=0;
        for(int j:s)
        {
            if(s.count(j-1)){continue;}
            else
            {
                
                int i=0;
                while(s.count(j+i))
                {
                    i++;

                }
                //
                m=max(m,i);
            }
        }
        return m;

    }
};